package com.baishancloud.log.douyin.demand2.subtask

import scala.beans.BeanProperty

/**
 * 由于头条  域名数据从金华地区切换到石家庄地区 kafka 集群，因此抖音的请求需要两个地方进行写入，故在原来的基础上，在 tag 标签中增加 kafka_source 字段来群是消费的哪个地区的 kafka 集群数据
 *
 * @author ziqiang.wang 
 * @date 2022/3/1 11:16
 */
class Calculate1Sub extends Serializable


/**
 * 入 mallard 的tag，也就是需求中的维度字段
 *
 * @param domain       域名字符串
 * @param isp          运营商字符串
 * @param a            url参数 a 的值
 * @param kafka_source 数据来源于哪个地区的 kafka 集群
 */
case class Tags2Sub(@BeanProperty domain: String, @BeanProperty isp: String, @BeanProperty a: String, @BeanProperty kafka_source: String) extends Serializable

/**
 * 入 mallard 的数据对象
 *
 * @param time     时间，1min，秒值
 * @param step     步长，固定60
 * @param name     监控图表查询的表名
 * @param endpoint 上报数据的主机的机器名，为空自动补充
 * @param value    数值，该需求中表示总请求书
 * @param tags     标签，所有维度
 */
case class Result2Sub(@BeanProperty time: Long, @BeanProperty step: Long, @BeanProperty name: String, @BeanProperty endpoint: String, @BeanProperty value: Long, @BeanProperty tags: Tags2Sub) extends Serializable {
  def getKey: ResultKey2Sub = {
    ResultKey2Sub(time, tags.domain, tags.isp, tags.a, tags.kafka_source)
  }
}


/**
 * 结果值的key，用来对数据进行keyBy
 *
 * @param time         数据时间，1min，秒值
 * @param domain       域名
 * @param isp          运营商
 * @param a            url参数 a 的值
 * @param kafka_source 数据来源于哪个地区的 kafka 集群
 */
case class ResultKey2Sub(time: Long, domain: String, isp: String, a: String, kafka_source: String) extends Serializable



